package com.jiashihui.schema_lgorithm.schema.singleton;

/**
 * 枚举避免多线程同步问题，而且还能防止反序列化重新创建新的对象，可谓是很坚强的壁垒
 *
 * 饿汉式、静态内部类，枚举等单例，其实现原理都是利用借助了类加载的时候初始化单例。即借助了ClassLoader的线程安全机制。
 * 所谓ClassLoader的线程安全机制，就是ClassLoader的loadClass方法在加载类的时候使用了synchronized关键字。
 * 也正是因为这样， 除非被重写，这个方法默认在整个装载过程中都是同步的，也就是保证了线程安全。
 * 所以，以上各种方法，虽然并没有显示的使用synchronized，但是还是其底层实现原理还是用到了synchronized。
 */
public enum EnumSingleton {
    INSTANCE;

    public void method(){
        System.out.println("枚举单例");
    }
}
